import type { AppRouteRecordRaw } from '/@/router/types';
import { t } from '/@/hooks/web/useI18n';
import { REDIRECT_NAME, LAYOUT, EXCEPTION_COMPONENT, PAGE_NOT_FOUND_NAME } from '/@/router/constant';

// 404 on a page
export const PAGE_NOT_FOUND_ROUTE: AppRouteRecordRaw = {
	path: '/:path(.*)*',
	name: PAGE_NOT_FOUND_NAME,
	component: LAYOUT,
	meta: {
		title: 'ErrorPage',
		hideBreadcrumb: true,
		hideMenu: true,
	},
	children: [
		{
			path: '/:path(.*)*',
			name: PAGE_NOT_FOUND_NAME,
			component: EXCEPTION_COMPONENT,
			meta: {
				title: 'ErrorPage',
				hideBreadcrumb: true,
				hideMenu: true,
			},
		},
	],
};

export const REDIRECT_ROUTE: AppRouteRecordRaw = {
	path: '/redirect',
	component: LAYOUT,
	name: 'RedirectTo',
	meta: {
		title: REDIRECT_NAME,
		hideBreadcrumb: true,
		hideMenu: true,
	},
	children: [
		{
			path: '/redirect/:path(.*)',
			name: REDIRECT_NAME,
			component: () => import('/@/views/sys/redirect/index.vue'),
			meta: {
				title: REDIRECT_NAME,
				hideBreadcrumb: true,
			},
		},
	],
};

export const ERROR_LOG_ROUTE: AppRouteRecordRaw = {
	path: '/error-log',
	name: 'ErrorLog',
	component: LAYOUT,
	redirect: '/error-log/list',
	meta: {
		title: 'ErrorLog',
		hideBreadcrumb: true,
		hideChildrenInMenu: true,
	},
	children: [
		{
			path: 'list',
			name: 'ErrorLogList',
			component: () => import('/@/views/sys/error-log/index.vue'),
			meta: {
				title: t('routes.basic.errorLogList'),
				hideBreadcrumb: true,
				currentActiveMenu: '/error-log',
			},
		},
	],
};
